/**
 * @ Author:Yoann Meclot. MSay2
 * @ Created on:2021-06-14 18:11:24
 * @ Modified on: 2021-06-14 18:44:41
 */
/**
 * Copyright (c) 2020-2021 MSay2 (Yoann Meclot) - @msay2/tspoet
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Equalsable } from "../util/Equalsable.js";
import { List } from "../util/list/List.js";
/**
 * The Modifier object is mean to specify a modifier to your element, field and/or method.
 *
 * The modifier is defined by one id, use static field to insert a specific modifier to your element, field and/or method.
 *
 * @class `Modifier`
 * @version 1.2
 */
export declare class Modifier implements Equalsable
{
    /**
     * EXPORT modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static EXPORT:Modifier;

    /**
     * PUBLIC modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static PUBLIC:Modifier;

    /**
     * STATIC modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static STATIC:Modifier;

    /**
     * PRIVATE modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static PRIVATE:Modifier;

    /**
     * ABSTRACT modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static ABSTRACT:Modifier;

    /**
     * PROTECTED modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static PROTECTED:Modifier;

    /**
     * READONLY modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static READONLY:Modifier;

    /**
     * NOTHING modifier.
     * @type {Modifier}
     * @since 1.2
     */
    public static UNDEFINED:Modifier;

    /**
     * Check if the modifiers list is conform for a contructor.
     * @param list The modifiers list.
     * @type {boolean}
     * @since 1.2
     */
    public static isConstructor(list:List<Modifier>):boolean;

    /**
     * Check if the modifiers list contain basic TypeScript modifiers.
     *
     * @param list The modifiers list.
     * @type {boolean}
     * @since 1.2
     */
    public static isSimpleModifier(list:List<Modifier>):boolean;

    /**
     * Check if the modifiers list contain a valid modifiers for nested classes.
     *
     * @param list The modifiers list.
     * @type {boolean}
     * @since 1.2
     */
    public static isNestedClass(list:List<Modifier>):boolean;

    /**
     * Check if the modifiers list contain `private` modifier.
     *
     * @param list The modifiers list.
     * @type {boolean}
     * @since 1.2
     */
    public static isPrivate(list:List<Modifier>):boolean;

    public equals(object:Object):boolean;
    
    /**
     * Get id.
     *
     * @type {number}
     * @since 1.2
     */
    public getName():number;

    /**
     * Get name by the current id.
     *
     * @type {string}
     * @since 1.2
     */
    public getSimpleName():string;

    private constructor();
}
//# sourceMappingURL=Modifier.d.ts.map